<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>

  <div class="box"></div>
  <ol id="ol1">
    <li></li>
    <li></li>
    <li class="box"></li>
    <li></li>
    <li></li>
    <div class="box">1</div>
  </ol>
  <script>
    // 为什么要自定义byClassName方法呢？
    // 答：因为在IE8以下，是不支持getElementsByClassName方法的
    //     所以它的存在就是解决IE8以下可用这个方法获取
    
    function elementsByClassName(node, classStr) {
      // 1.获取node这个节点下的所有子节点
      var nodes = node.getElementsByTagName("*");
      // 存放符合条件的节点
      var arr = [];
      for (var i = 0; i < nodes.length; i++) {
        if (nodes[i].className === classStr) {
          arr.push(nodes[i]);
        }
      }
      return arr;
    }

    var oL = document.getElementById("ol1");
    var nodes = elementsByClassName(oL, "box");
    console.log(nodes.length);
    for (var i = 0; i < nodes.length; i++) {
      nodes[i].style.backgroundColor = "red";
    }
  </script>
</body>

</html>